#pragma once
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<assert.h>
#include<stdlib.h>
#include<stdbool.h>
typedef int QNodeDataType;
typedef struct QueueNode
{
	QNodeDataType data;
	struct QueueNode* next;


}QueueNode;

typedef struct QueQue
{
	QueueNode* head;
	QueueNode* tail;
	int size;


}Que;
//初始化队列
void QueueInit(Que* pq);
//检测队列是否为空
bool QueueEmpty(Que* pq);
//队尾入队列
void QueuePush(Que* pq, QNodeDataType x);
//队头出队列
void QueuePop(Que* pq);
//获取队列头部元素
QNodeDataType QueueFront(Que* pq);
//获取队列尾部元素
QNodeDataType QueueBack(Que* pq);
//获取队列元素个数
int QueueSize(Que* pq);
//销毁队列
void QueueDestroy(Que* pq);